package logic

import (
	"MyBlogs/dao/mysql"
	"MyBlogs/models"
	"MyBlogs/pkg/session"
	"fmt"
	"github.com/gin-gonic/gin"
	"strconv"
	"time"
)

// 添加评论
func SetRemark(context *gin.Context) {
	var id int64

	val := session.GetSession(context)
	if n, ok := val["id"]; ok {
		id = n.(int64)
	}

	if id < 1 {
		context.JSON(200, gin.H{
			"data": "请先登录!",
		})
		return
	} else {
		var rem *models.Remark
		err := context.ShouldBind(&rem)
		if err != nil {
			fmt.Printf(err.Error())
		}

		rem.UserId = strconv.Itoa(int(id))
		rem.CreateTime = time.Now().Format("2006-01-02 15:04:05")

		mysql.SetRemark(context, rem)
	}

}

// 查询 某一个文章的 评论
func GetRemark(context *gin.Context) {
	art_idStr, _ := context.GetPostForm("art_id")
	art_id, _ := strconv.ParseInt(art_idStr, 10, 64)
	rem := mysql.GetRemark(art_id)

	rems := mysql.OneReplyRemark(art_id)

	context.JSON(200, gin.H{
		"rem":  rem,
		"rems": rems,
	})
}

// 查询到所有的评论   &&   根据文章 id 查 文章名   管理员身份
func AllRemark(context *gin.Context) {
	all := mysql.AllRemark()

	context.JSON(200, gin.H{
		"rem": all,
	})
}

// 删除评论
func DelRemark(context *gin.Context) {
	idStr, _ := context.GetPostForm("id")
	id, _ := strconv.ParseInt(idStr, 10, 64)
	typeStr, _ := context.GetPostForm("type")
	typeInt, _ := strconv.ParseInt(typeStr, 10, 64)
	mysql.DelRemark(id, typeInt)
}

// 回复评论  , 看是否可以评论
func ReplyRemark(context *gin.Context) {
	var id int64

	val := session.GetSession(context)
	if n, ok := val["id"]; ok {
		id = n.(int64)
	}

	if id < 1 {
		context.JSON(200, gin.H{
			"data": "请先登录!",
		})
		return
	}

	context.JSON(200, gin.H{
		"data": "可以评论",
	})

}

// 将 评论内容  添加到 数据库
func AddReplyRemark(context *gin.Context) {
	var rep *models.RemarkReply
	err := context.ShouldBind(&rep)
	if err != nil {
		fmt.Printf(err.Error())
	}

	var name string
	val := session.GetSession(context)
	if n, ok := val["name"]; ok {
		name = n.(string)
	}

	rep.UserName = name
	rep.CreateTime = time.Now().Format("2006-01-02 15:04:05")

	mysql.AddReplyRemark(rep)

}
